package com.ppch.zerocodegenerator.ai.service;

import com.ppch.zerocodegenerator.ai.enums.CodeGenTypeEnum;
import com.ppch.zerocodegenerator.ai.model.code_result.HtmlCodeResult;
import com.ppch.zerocodegenerator.ai.model.code_result.MultiFileCodeResult;
import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.TokenStream;
import dev.langchain4j.service.UserMessage;
import reactor.core.publisher.Flux;

/**
 * Package:ZeroCodeGenerator
 * ClassName:AiCodeGenTypeRoutingService
 *
 * @Author 泡泡茶壶
 * @Create 2025/10/21 14:21
 * @Version 1.0
 * Description:
 * 代码生成模式路由：使用 AI 大模型来根据用户提示词选择合适的代码生成模式
 * 使用到的特性：结构化输出，输出对应的枚举值 JSON
 */
public interface AiCodeGenTypeRoutingService {

    /**
     * 使用 AI 大模型来根据用户提示词选择合适的代码生成模式
     * @param userMessage 用户 Prompt
     * @return 代码生成模式枚举
     */
    @SystemMessage(fromResource = "prompt/code-gen-type-route-system-prompt.txt")
    CodeGenTypeEnum routeCodeGenType(@UserMessage String userMessage);

}
